* `#define UTF8PROC_STATIC` to disable DLLEXPORT
`#define UTF8PROC_STATIC` to disable DLLEXPORT
* [CMake] Automatically define UTF8PROC_STATIC if BUILD_SHARED_LIBS is off
* [Makefile] Support additional UTF8PROC_DEFINES, which can be used to specify flags like `-DUTF8PROC_STATIC`
utf8proc.h
)
+if (BUILD_SHARED_LIBS)
+ # Building shared library
+else()
+ # Building static library
+ target_compile_definitions(utf8proc PUBLIC "UTF8PROC_STATIC")
+endif()
+
target_compile_definitions(utf8proc PRIVATE "UTF8PROC_EXPORTS")
set_target_properties (utf8proc PROPERTIES
PICFLAG = -fPIC
C99FLAG = -std=c99
WCFLAGS = -Wall -pedantic
-UCFLAGS = $(CFLAGS) $(PICFLAG) $(C99FLAG) $(WCFLAGS) -DUTF8PROC_EXPORTS
+UCFLAGS = $(CFLAGS) $(PICFLAG) $(C99FLAG) $(WCFLAGS) -DUTF8PROC_EXPORTS $(UTF8PROC_DEFINES)
# shared-library version MAJOR.MINOR.PATCH ... this may be *different*
# from the utf8proc version number because it indicates ABI compatibility,
#endif
#include <limits.h>
-#ifdef _WIN32
-# ifdef UTF8PROC_EXPORTS
-# define UTF8PROC_DLLEXPORT __declspec(dllexport)
+#ifdef UTF8PROC_STATIC
+# define UTF8PROC_DLLEXPORT
+#else
+# ifdef _WIN32
+# ifdef UTF8PROC_EXPORTS
+# define UTF8PROC_DLLEXPORT __declspec(dllexport)
+# else
+# define UTF8PROC_DLLEXPORT __declspec(dllimport)
+# endif
+# elif __GNUC__ >= 4
+# define UTF8PROC_DLLEXPORT __attribute__ ((visibility("default")))
# else
-# define UTF8PROC_DLLEXPORT __declspec(dllimport)
+# define UTF8PROC_DLLEXPORT
# endif
-#elif __GNUC__ >= 4
-# define UTF8PROC_DLLEXPORT __attribute__ ((visibility("default")))
-#else
-# define UTF8PROC_DLLEXPORT
#endif
#ifdef __cplusplus